// 上课跟着老师敲代码

let str: string | number = '123' //联合类型

// type 类似于生成一个变量
type Str = string | number;  //联合类型
let str1: Str = '123'  //有用到类型的只需要调用type生成的变量就可以了
let msg: Str = 123


interface Name{
    name:string;
}

interface Age{
    age:number
}

// type Info = Name | Age;  //联合类型 只需要满足其中一个就可以
//接口也可以使用联合类型 
type Info = Name & Age;  //交叉类型   需要两个类型同时满足
let info:Info={
    name:'小花',
    age:23
};

// 区别
// interface可以定义多个相同名字
//type不能定义多个相同名字 相当于js中的const
interface Foo{
    gread:string;
}

interface Foo{
    num:number;
}

let obj:Foo={  //接口名字可以重复，但属性不能少
    gread:'1909B',
    num:12
}

export {}